Drop shadow lock on exit
authoradsharma@los-vmm.sc.intel.com <adsharma@los-vmm.sc.intel.com>
Wed, 17 Aug 2005 19:22:31 +0000 (11:22 -0800)
committeradsharma@los-vmm.sc.intel.com <adsharma@los-vmm.sc.intel.com>
Wed, 17 Aug 2005 19:22:31 +0000 (11:22 -0800)
Signed-off-by: Yunhong Jiang <yunhong.jiang@intel.com>
Signed-off-by: Arun Sharma <arun.sharma@intel.com>
xen/arch/x86/shadow.c
xen/arch/x86/shadow32.c

index e6dd5fe0c18b67ef256e92e4a472559e34d27db2..f34fb6f2e89fa07d9b00e340ed28af0bc898a93c 100644 (file)
@@ -671,6 +671,7 @@ static void shadow_invlpg_32(struct vcpu *v, unsigned long va)
                          sizeof(gpte))) {*/
     if (unlikely(!__guest_get_l1e(v, va, &gpte))) {
         perfc_incrc(shadow_invlpg_faults);
+        shadow_unlock(d);
         return;
     }
     l1pte_propagate_from_guest(d, gpte, &spte);
index 1f6d6bb133162eb76978b7b1769bb925250e79e0..ab0aae319577a852e4829f4ea02d18b2874b0fb8 100644 (file)
@@ -1685,6 +1685,7 @@ void shadow_invlpg(struct vcpu *v, unsigned long va)
     if (__copy_from_user(&gpte, &linear_pg_table[va >> PAGE_SHIFT],
                          sizeof(gpte))) {
         perfc_incrc(shadow_invlpg_faults);
+        shadow_unlock(d);
         return;
     }
     l1pte_propagate_from_guest(d, gpte, &spte);